package com.bdqn.Practice1.Sjlx2;

public class TextPaper implements Paper{
    private int charPerLine=16; //每行字符数
    private int linePerPage=5; //每页行数
    private String content=""; //纸张中内容
    private int posX=0; //当前横向位置,从0到charPerLine-1
    private int posY=0; //当前行数,从0到linePerPage-1
    private int posP=1; //当前页数
    @Override
    public void putInChar(char c) {
        content+=c;
        ++posX;
        //判断是否换行
        if (posX == getCharPerLine()){
            content+=Paper.newline;
            posX=0;
            ++posY;
        }
        if (posY== getLinePerPage()){
            content+="==第"+posP+"页==";
            content+=Paper.newline+Paper.newline;
            posY=0;
            ++posP;
        }
    }

    @Override
    public String getContent() {
        String ret = this.content;
        System.out.println(ret);
        //补齐本页空行,并显示页码
        if (!(posX == 0 && posY == 0)){
            int count= getLinePerPage() - posY;
            for (int i=0;i<count;++i){
                ret=Paper.newline;
            }
            ret+="== 第"+posP+"页==";
        }
        return ret;
    }

    public int getCharPerLine() {
        return charPerLine;
    }

    public void setCharPerLine(int charPerLine) {
        this.charPerLine = charPerLine;
    }

    public int getLinePerPage() {
        return linePerPage;
    }

    public void setLinePerPage(int linePerPage) {
        this.linePerPage = linePerPage;
    }
}
